package com.ruoyi.system.service.impl;

import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.system.domain.DutyMessage;
import com.ruoyi.system.mapper.DutyMessageMapper;
import com.ruoyi.system.service.DutyMessageService;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.Date;
import java.util.List;

/**
 * 值班人员管理(DutyMessage)表服务实现类
 *
 * @author makejava
 * @since 2022-11-18 09:32:26
 */
@Service("dutyMessageService")
public class DutyMessageServiceImpl implements DutyMessageService {
    @Resource
    private DutyMessageMapper dutyMessageDao;

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    @Override
    public DutyMessage queryById(Integer id) {
        return this.dutyMessageDao.queryById(id);
    }

    /**
     * 分页查询
     *
     * @param dutyMessage 筛选条件
     * @param pageRequest      分页对象
     * @return 查询结果
     */
    @Override
    public Page<DutyMessage> queryByPage(DutyMessage dutyMessage, PageRequest pageRequest) {
        long total = this.dutyMessageDao.count(dutyMessage);
        return new PageImpl<>(this.dutyMessageDao.queryAllByLimit(dutyMessage, pageRequest), pageRequest, total);
    }

    @Override
    public List<DutyMessage> selectList(DutyMessage dutyMessage) {
        return dutyMessageDao.queryAll(dutyMessage);
    }

    /**
     * 新增数据
     *
     * @param dutyMessage 实例对象
     * @return 实例对象
     */
    @Override
    public DutyMessage insert(DutyMessage dutyMessage) {

        dutyMessage.setCreatedBy(SecurityUtils.getLoginUser().getUsername());
        dutyMessage.setCreatedDate(new Date());
        dutyMessage.setModifyBy(SecurityUtils.getLoginUser().getUsername());
        dutyMessage.setModifyDate(new Date());

        this.dutyMessageDao.insert(dutyMessage);
        return dutyMessage;
    }

    /**
     * 修改数据
     *
     * @param dutyMessage 实例对象
     * @return 实例对象
     */
    @Override
    public DutyMessage update(DutyMessage dutyMessage) {
        this.dutyMessageDao.update(dutyMessage);
        return this.queryById(dutyMessage.getId());
    }

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    @Override
    public boolean deleteById(Integer id) {
        return this.dutyMessageDao.deleteById(id) > 0;
    }

    @Override
    public void remove(Long[] ids) {
        for (Long configId : ids) {
           this.deleteById(configId.intValue());
        }
    }

}
